package com.monitor.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.monitor.pubInter.BaseSearch;
import com.monitor.model.WechatDayStatic;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2025-04-02 16:42:37
*   @description WechatDayStaticSearch      微信日信息统计
*/


@Data
@ApiModel("微信日信息统计WechatDayStaticSearch")
public abstract class WechatDayStaticSearch<Sub extends WechatDayStaticSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "所属部门")
    private String deptNameLike;
    @ApiModelProperty(value = "员工姓名")
    private String staffNameLike;
    @ApiModelProperty(value = "员工手机号")
    private String staffPhoneLike;
    @ApiModelProperty(value = "微信昵称")
    private String staffNicknameLike;
    @ApiModelProperty(value = "微信号")
    private String staffWechatNoLike;
    @ApiModelProperty(value = "微信手机号")
    private String staffWechatPhoneLike;
    @ApiModelProperty(value = "微信id")
    private String staffWechatIdLike;
    @ApiModelProperty(value = "数据来源")
    private String dataSourceLike;
    @ApiModelProperty(value = "大于累计发送消息")
    private Integer messageSendNumGreater;
    @ApiModelProperty(value = "小于累计发送消息")
    private Integer messageSendNumLess;
    @ApiModelProperty(value = "大于累计接受消息数量")
    private Integer messageReceiveNumGreater;
    @ApiModelProperty(value = "小于累计接受消息数量")
    private Integer messageReceiveNumLess;
    @ApiModelProperty(value = "大于撤回消息数量")
    private Integer messageReturnNumGreater;
    @ApiModelProperty(value = "小于撤回消息数量")
    private Integer messageReturnNumLess;
    @ApiModelProperty(value = "大于沟通人数")
    private Integer communicateNumGreater;
    @ApiModelProperty(value = "小于沟通人数")
    private Integer communicateNumLess;
    @ApiModelProperty(value = "大于有效沟通人数")
    private Integer effectiveCommunicateNumGreater;
    @ApiModelProperty(value = "小于有效沟通人数")
    private Integer effectiveCommunicateNumLess;
    @ApiModelProperty(value = "大于员工最后回复数")
    private Integer finalReplyNumGreater;
    @ApiModelProperty(value = "小于员工最后回复数")
    private Integer finalReplyNumLess;
    @ApiModelProperty(value = "最后回复率")
    private String finalReplyPerLike;
    @ApiModelProperty(value = "大于未回复客户数量")
    private Integer unReplyNumGreater;
    @ApiModelProperty(value = "小于未回复客户数量")
    private Integer unReplyNumLess;
    @ApiModelProperty(value = "文件大小")
    private String fileSizeLike;
    @ApiModelProperty(value = "是否主微信")
    private String isMainWechatLike;
    @ApiModelProperty(value = "大于已添加好友数量")
    private Integer totalFriendNumGreater;
    @ApiModelProperty(value = "小于已添加好友数量")
    private Integer totalFriendNumLess;
    @ApiModelProperty(value = "大于已添加微信群数量")
    private Integer totalGroupNumGreater;
    @ApiModelProperty(value = "小于已添加微信群数量")
    private Integer totalGroupNumLess;
    @ApiModelProperty(value = "大于跟进客户数")
    private Integer followCustomerNumGreater;
    @ApiModelProperty(value = "小于跟进客户数")
    private Integer followCustomerNumLess;
    @ApiModelProperty(value = "数据更新时间")
    private String dataUpdateTimeLike;
    @ApiModelProperty(value = "最新消息时间")
    private String lastMessageTimeLike;

    public WechatDayStaticSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return WechatDayStatic.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return WechatDayStatic.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return WechatDayStatic.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return WechatDayStatic.ID;
    }

    @Override
    public String  toString() {
        return "WechatDayStaticSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(WechatDayStatic.ID, idIn);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(WechatDayStatic.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(WechatDayStatic.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(WechatDayStatic.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(WechatDayStatic.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setDeptNameLike(String deptNameLike){
        this.deptNameLike = deptNameLike;
        setLikeField(WechatDayStatic.DEPT_NAME, deptNameLike);
        return getSubThis();
    }
    public Sub setStaffNameLike(String staffNameLike){
        this.staffNameLike = staffNameLike;
        setLikeField(WechatDayStatic.STAFF_NAME, staffNameLike);
        return getSubThis();
    }
    public Sub setStaffPhoneLike(String staffPhoneLike){
        this.staffPhoneLike = staffPhoneLike;
        setLikeField(WechatDayStatic.STAFF_PHONE, staffPhoneLike);
        return getSubThis();
    }
    public Sub setStaffNicknameLike(String staffNicknameLike){
        this.staffNicknameLike = staffNicknameLike;
        setLikeField(WechatDayStatic.STAFF_NICKNAME, staffNicknameLike);
        return getSubThis();
    }
    public Sub setStaffWechatNoLike(String staffWechatNoLike){
        this.staffWechatNoLike = staffWechatNoLike;
        setLikeField(WechatDayStatic.STAFF_WECHAT_NO, staffWechatNoLike);
        return getSubThis();
    }
    public Sub setStaffWechatPhoneLike(String staffWechatPhoneLike){
        this.staffWechatPhoneLike = staffWechatPhoneLike;
        setLikeField(WechatDayStatic.STAFF_WECHAT_PHONE, staffWechatPhoneLike);
        return getSubThis();
    }
    public Sub setStaffWechatIdLike(String staffWechatIdLike){
        this.staffWechatIdLike = staffWechatIdLike;
        setLikeField(WechatDayStatic.STAFF_WECHAT_ID, staffWechatIdLike);
        return getSubThis();
    }
    public Sub setDataSourceLike(String dataSourceLike){
        this.dataSourceLike = dataSourceLike;
        setLikeField(WechatDayStatic.DATA_SOURCE, dataSourceLike);
        return getSubThis();
    }
    public Sub setMessageSendNumGreater(Integer messageSendNumGreater){
        this.messageSendNumGreater = messageSendNumGreater;
        setGreaterField(WechatDayStatic.MESSAGE_SEND_NUM, messageSendNumGreater);
        return getSubThis();
    }
    public Sub setMessageSendNumLess(Integer messageSendNumLess){
        this.messageSendNumLess = messageSendNumLess;
        setLessField(WechatDayStatic.MESSAGE_SEND_NUM, messageSendNumLess);
        return getSubThis();
    }
    public Sub setMessageReceiveNumGreater(Integer messageReceiveNumGreater){
        this.messageReceiveNumGreater = messageReceiveNumGreater;
        setGreaterField(WechatDayStatic.MESSAGE_RECEIVE_NUM, messageReceiveNumGreater);
        return getSubThis();
    }
    public Sub setMessageReceiveNumLess(Integer messageReceiveNumLess){
        this.messageReceiveNumLess = messageReceiveNumLess;
        setLessField(WechatDayStatic.MESSAGE_RECEIVE_NUM, messageReceiveNumLess);
        return getSubThis();
    }
    public Sub setMessageReturnNumGreater(Integer messageReturnNumGreater){
        this.messageReturnNumGreater = messageReturnNumGreater;
        setGreaterField(WechatDayStatic.MESSAGE_RETURN_NUM, messageReturnNumGreater);
        return getSubThis();
    }
    public Sub setMessageReturnNumLess(Integer messageReturnNumLess){
        this.messageReturnNumLess = messageReturnNumLess;
        setLessField(WechatDayStatic.MESSAGE_RETURN_NUM, messageReturnNumLess);
        return getSubThis();
    }
    public Sub setCommunicateNumGreater(Integer communicateNumGreater){
        this.communicateNumGreater = communicateNumGreater;
        setGreaterField(WechatDayStatic.COMMUNICATE_NUM, communicateNumGreater);
        return getSubThis();
    }
    public Sub setCommunicateNumLess(Integer communicateNumLess){
        this.communicateNumLess = communicateNumLess;
        setLessField(WechatDayStatic.COMMUNICATE_NUM, communicateNumLess);
        return getSubThis();
    }
    public Sub setEffectiveCommunicateNumGreater(Integer effectiveCommunicateNumGreater){
        this.effectiveCommunicateNumGreater = effectiveCommunicateNumGreater;
        setGreaterField(WechatDayStatic.EFFECTIVE_COMMUNICATE_NUM, effectiveCommunicateNumGreater);
        return getSubThis();
    }
    public Sub setEffectiveCommunicateNumLess(Integer effectiveCommunicateNumLess){
        this.effectiveCommunicateNumLess = effectiveCommunicateNumLess;
        setLessField(WechatDayStatic.EFFECTIVE_COMMUNICATE_NUM, effectiveCommunicateNumLess);
        return getSubThis();
    }
    public Sub setFinalReplyNumGreater(Integer finalReplyNumGreater){
        this.finalReplyNumGreater = finalReplyNumGreater;
        setGreaterField(WechatDayStatic.FINAL_REPLY_NUM, finalReplyNumGreater);
        return getSubThis();
    }
    public Sub setFinalReplyNumLess(Integer finalReplyNumLess){
        this.finalReplyNumLess = finalReplyNumLess;
        setLessField(WechatDayStatic.FINAL_REPLY_NUM, finalReplyNumLess);
        return getSubThis();
    }
    public Sub setFinalReplyPerLike(String finalReplyPerLike){
        this.finalReplyPerLike = finalReplyPerLike;
        setLikeField(WechatDayStatic.FINAL_REPLY_PER, finalReplyPerLike);
        return getSubThis();
    }
    public Sub setUnReplyNumGreater(Integer unReplyNumGreater){
        this.unReplyNumGreater = unReplyNumGreater;
        setGreaterField(WechatDayStatic.UN_REPLY_NUM, unReplyNumGreater);
        return getSubThis();
    }
    public Sub setUnReplyNumLess(Integer unReplyNumLess){
        this.unReplyNumLess = unReplyNumLess;
        setLessField(WechatDayStatic.UN_REPLY_NUM, unReplyNumLess);
        return getSubThis();
    }
    public Sub setFileSizeLike(String fileSizeLike){
        this.fileSizeLike = fileSizeLike;
        setLikeField(WechatDayStatic.FILE_SIZE, fileSizeLike);
        return getSubThis();
    }
    public Sub setIsMainWechatLike(String isMainWechatLike){
        this.isMainWechatLike = isMainWechatLike;
        setLikeField(WechatDayStatic.IS_MAIN_WECHAT, isMainWechatLike);
        return getSubThis();
    }
    public Sub setTotalFriendNumGreater(Integer totalFriendNumGreater){
        this.totalFriendNumGreater = totalFriendNumGreater;
        setGreaterField(WechatDayStatic.TOTAL_FRIEND_NUM, totalFriendNumGreater);
        return getSubThis();
    }
    public Sub setTotalFriendNumLess(Integer totalFriendNumLess){
        this.totalFriendNumLess = totalFriendNumLess;
        setLessField(WechatDayStatic.TOTAL_FRIEND_NUM, totalFriendNumLess);
        return getSubThis();
    }
    public Sub setTotalGroupNumGreater(Integer totalGroupNumGreater){
        this.totalGroupNumGreater = totalGroupNumGreater;
        setGreaterField(WechatDayStatic.TOTAL_GROUP_NUM, totalGroupNumGreater);
        return getSubThis();
    }
    public Sub setTotalGroupNumLess(Integer totalGroupNumLess){
        this.totalGroupNumLess = totalGroupNumLess;
        setLessField(WechatDayStatic.TOTAL_GROUP_NUM, totalGroupNumLess);
        return getSubThis();
    }
    public Sub setFollowCustomerNumGreater(Integer followCustomerNumGreater){
        this.followCustomerNumGreater = followCustomerNumGreater;
        setGreaterField(WechatDayStatic.FOLLOW_CUSTOMER_NUM, followCustomerNumGreater);
        return getSubThis();
    }
    public Sub setFollowCustomerNumLess(Integer followCustomerNumLess){
        this.followCustomerNumLess = followCustomerNumLess;
        setLessField(WechatDayStatic.FOLLOW_CUSTOMER_NUM, followCustomerNumLess);
        return getSubThis();
    }
    public Sub setDataUpdateTimeLike(String dataUpdateTimeLike){
        this.dataUpdateTimeLike = dataUpdateTimeLike;
        setLikeField(WechatDayStatic.DATA_UPDATE_TIME, dataUpdateTimeLike);
        return getSubThis();
    }
    public Sub setLastMessageTimeLike(String lastMessageTimeLike){
        this.lastMessageTimeLike = lastMessageTimeLike;
        setLikeField(WechatDayStatic.LAST_MESSAGE_TIME, lastMessageTimeLike);
        return getSubThis();
    }
}